package com.xsz.lambdademo;

import java.util.function.Predicate;

public class PredicateDemo {

    public static void main(String[] args) {
        // 偶数判断
        Predicate<Integer> isEven = (in) -> in % 2 == 0;
        isEven.test(17); // false3

        // 判断字符串的长度是否为0
        Predicate<String> isEmptyString = String::isEmpty;
        isEmptyString.test(""); // true

        // 判断是偶数，并且大于30
        //除了抽象方法外，java.util.function.Predicate<T>接口
        // 还定义了三个默认方法：and，negate和or，对应“与”，“非”和“或”操作，这样我们便可以复合Lambda表达式了，比如：

        isEven.and((in) -> in > 30).test(40); // true

        // 奇数判断

        Predicate<Integer> isOdd = isEven.negate();
        isOdd.test(17); // true



    }
}
